﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Avanade.ViddlerDotNet.DataContracts
{
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.1432")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    [System.Xml.Serialization.XmlRootAttribute(ElementName = "video", Namespace = "", IsNullable = false)]
    public partial class VideoDetails
    {
        private string author;
        private string id;
        private string title;
        private uint length;
        private ushort width;
        private ushort height;
        private string description;
        private uint viewCount;
        private ulong uploadTime;
        private string madePublicTime;
        private uint commentCount;
        private VideoTags tags;
        private string url;
        private string thumbnailUrl;
        private string permalink;
        private string updateTime;
        private CommentList commentList;

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(ElementName = "author", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string Author
        {
            get { return this.author; }
            set { this.author = value; }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(ElementName = "id", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string ID
        {
            get { return this.id; }
            set { this.id = value; }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(ElementName = "title", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string Title
        {
            get { return this.title; }
            set { this.title = value; }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(ElementName = "length_seconds", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public uint Length
        {
            get { return this.length; }
            set { this.length = value; }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(ElementName = "width", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public ushort Width
        {
            get { return this.width; }
            set { this.width = value; }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(ElementName = "height", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public ushort Height
        {
            get { return this.height; }
            set { this.height = value; }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(ElementName = "description", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string Description
        {
            get { return this.description; }
            set { this.description = value; }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(ElementName = "view_count", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public uint ViewCount
        {
            get { return this.viewCount; }
            set { this.viewCount = value; }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(ElementName = "upload_time", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public ulong UploadTime
        {
            get { return this.uploadTime; }
            set { this.uploadTime = value; }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(ElementName = "made_public_time", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string MadePublicTime
        {
            get { return this.madePublicTime; }
            set { this.madePublicTime = value; }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(ElementName = "comment_count", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public uint CommentCount
        {
            get { return this.commentCount; }
            set { this.commentCount = value; }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(ElementName = "tags", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public VideoTags Tags
        {
            get { return this.tags; }
            set { this.tags = value; }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(ElementName = "url", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string Url
        {
            get { return this.url; }
            set { this.url = value; }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(ElementName = "thumbnail_url", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string ThumbnailUrl
        {
            get { return this.thumbnailUrl; }
            set { this.thumbnailUrl = value; }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(ElementName = "permalink", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string Permalink
        {
            get { return this.permalink; }
            set { this.permalink = value; }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(ElementName = "update_time", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string UpdateTime
        {
            get { return this.updateTime; }
            set { this.updateTime = value; }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(ElementName = "comment_list", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public CommentList CommentList
        {
            get { return this.commentList; }
            set { this.commentList = value; }
        }
    }
}